/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import java.math.BigDecimal;
import javax.ejb.Local;

/**
 *
 * @author Ing. Monica Merlo, Ing. Agustin  Fernandez
 */
@Local
public interface GestorPagosLocal {
    
     /***
     * Retorna una lista con todos los objetos de tipo Certificado cuyos
     * id de Obra coincidan con el parametro idObra, y ademas cuyos estados
     * sean distintos de 'PAGADO', caso contario retorna Null.
     * @param idObra
     * @return lista de certificados por obra y con estado distinto de 'PAGADO'
     * Interfaz local
     */
    public java.util.List verCertificadosObra(int idObra);

     /***
     * Crea una nueva instancia de tipo Pago retornando True en caso de exito y False en
     * caso contrario.
     * @param numero
     * @param fecha
     * @param observaciones
     * @param monto
     * @param montoCertificado
     * @param idCertificado
     * @param idEstado
     * @param estado
     * @param saldoCertificado
     * @param numeroCheque
     * @param tipoCheque
     * @param emisor
     * @param numeroCtaCorriente
     * @param banco
     * @param nroSucursal
     * @return true si el nuevo pago persiste con exito, y false si no persiste con exito
     * Interfaz local
     */
   
    public boolean agregarPago(int numero, java.util.Date fecha, java.lang.String observaciones, BigDecimal monto, BigDecimal montoCertificado, int idCertificado, int idEstado, java.lang.String estado, BigDecimal saldoCertificado, int numeroCheque, java.lang.String tipoCheque, java.lang.String emisor, String numeroCtaCorriente, java.lang.String banco, int nroSucursal);

     /***
     * Retorna un objeto de tipo EstadoCertificado cuyo nombre coincida con
     * el parametro nombre, en caso contrario retorna Null.
     * @param nombre
     * @return estado de certificado
     * Interfaz local
     */
    public datos.EstadoCertificado encontrarEstadoPorNombre(java.lang.String nombre);

    /***
     * Retorna una lista con objetos de tipo Pago que posean referencia a algun objeto de tipo
     * Certificado, es decir, cuyo id de Certificado coincida con el parametro idCertificado,
     * en caso contrario retorna Null.
     * @param idCertificado
     * @return lista de los pagos por certificado
     * Interfaz local
     */
    public java.util.List existePago(int idCertificado);


}